All your players, bullets, traps, vehicles etc, are objects in your
game. Normally in a single player game, only your computer controls
these objects, but in a multi-player game which computer controls which
object?
  Well, obviously the user controls her/his character, but which computer
does the collision control for it. Only one machine should make decisions
for each object, otherwise two machines could give out different
positions/states for the same object. 
  The easiest way is have the Server control everything, like the
collisions between all objects. This is easy in a Client/Server setup,
where all player movements are sent to the Server first and only executed
after they've come back to the Client, so the Server can easily change a
player's movements, if say another player was pushing them for example.
It can also control non-player objects like bullets, computer-controlled
players or monsters, and collisions between them and with players.
  This is ok if you have dedicated Server (ie: no player is playing on
that computer), but if there's a player playing on that computer as well
it puts a large extra workload on that computer. This is alright if the
computer is powerful enough or there's not many players, if not, the game
won't run very well. And if you start getting large number of players
(>32) then this system won't work without a very powerful Server (and a
decent, digital connection to the Internet for that matter). 
  If you've using Peer-to-Peer then you'd be better off doing each
player's collision detection on that player's computer, because if you had
the Server doing it, you could get graphical glitches, with the collision
detection not syncing up with images onscreen! I would still have the
Server making decisions on non-player objects like powerups/computer
players etc, otherwise two players could both claim the same powerup! 
  You also could let other machines have control of non-player objects,
to take the strain off the Server, but the problem is, if the link is
lost to that computer then that object is lost! You'd have to have a 
protocol that would have the Server take back control of that object
or give control of it to another computer still online. This is getting
rather complex, and I wouldn't advise bothering with it for the average
game! But if you wanted to get into large scale simulations (World
simulations with lots of players), then it maybe a solution :-)   
 
Object-Control
Converted with g2h, © 24.06.1998 N. DARNIS